proof by cases in discrete mathematics